home *** CD-ROM | disk | FTP | other *** search
/ C++ für Kids / C++ for kids.iso / Buch / Monstr2a.cpp < prev    next >
C/C++ Source or Header  |  1999-01-29  |  3KB  |  95 lines

  1. //---------------------------------------------------------------------------
  2. #include <vcl\vcl.h>
  3. #pragma hdrstop
  4.  
  5. #include "Monstr2a.h"
  6. //---------------------------------------------------------------------------
  7. #pragma resource "*.dfm"
  8.  
  9. class TMonster
  10. {
  11. private:
  12.   String Name;
  13.   String Wesen;
  14. public:
  15.   void Erscheinen(void);
  16.   virtual String Typ (void) {return "Monster";};
  17.   TMonster (String N, String W);
  18. };
  19.  
  20. class TGMonster : public TMonster
  21. {
  22. public:
  23.   virtual String Typ (void) {return "GeistesMonster";};
  24.   virtual void Typ (String Charakter)
  25.     {Form1->Label3->Caption = "Ich habe " + Charakter;};
  26.   TGMonster (String N, String W);
  27. };
  28.  
  29. class TSMonster : public TMonster
  30. {
  31. public:
  32.   virtual String Typ (void) {return "SeelenMonster";};
  33.   virtual void Typ (String Befinden)
  34.     {Form1->Label3->Caption = "Es geht mir " + Befinden;};
  35.   TSMonster (String N, String W);
  36. };
  37.  
  38. //---------------------------------------------------------------------------
  39.  
  40. TMonster  *Frank;   // Ganz der Vater?
  41. TGMonster *Albert;  // Etwa Einstein?
  42. TSMonster *Sigmund; // Doch nicht Freud?
  43. TForm1 *Form1;
  44.  
  45. //---------------------------------------------------------------------------
  46. __fastcall TForm1::TForm1(TComponent* Owner)
  47.     : TForm(Owner)
  48. {
  49. }
  50. //---------------------------------------------------------------------------
  51. TMonster::TMonster (String N, String W)
  52. {
  53.   Name = N; Wesen = W;
  54. }
  55. //---------------------------------------------------------------------------
  56. TGMonster::TGMonster (String N, String W) : TMonster (N, W)
  57. {
  58. }
  59. //---------------------------------------------------------------------------
  60. TSMonster::TSMonster (String N, String W) : TMonster (N, W)
  61. {
  62. }
  63. //---------------------------------------------------------------------------
  64. void TMonster::Erscheinen (void)
  65. {
  66.   Form1->Label1->Caption = "Name:    " + Name;
  67.   Form1->Label2->Caption = "Wesen:    " + Wesen;
  68.   Form1->Label3->Caption = "Typ:    " + Typ();
  69. }
  70. //---------------------------------------------------------------------------
  71. void __fastcall TForm1::FormCreate(TObject *Sender)
  72. {
  73.   Frank   = new TMonster  ("Frankie", "ungew÷hnlich");
  74.   Albert  = new TGMonster ("Berti", "nachdenklich");
  75.   Sigmund = new TSMonster ("Sigi", "mitfⁿhlend");
  76. }
  77. //---------------------------------------------------------------------------
  78. void __fastcall TForm1::Button1Click(TObject *Sender)
  79. {
  80.   Frank->Erscheinen ();
  81. }
  82. //---------------------------------------------------------------------------
  83. void __fastcall TForm1::Button2Click(TObject *Sender)
  84. {
  85.   Albert->Erscheinen ();
  86.   Albert->Typ ("Grips");
  87. }
  88. //---------------------------------------------------------------------------
  89. void __fastcall TForm1::Button3Click(TObject *Sender)
  90. {
  91.   Sigmund->Erscheinen ();
  92.   Sigmund->Typ ("gut");
  93. }
  94. //---------------------------------------------------------------------------
  95.